# A、B两个文件夹，请将B文件夹的文件名和A相同的文件（忽略文件后缀名）拷贝到C文件夹中
import os
import shutil

def copy_matching_files(folder_a, folder_b, folder_c):
    # 获取文件夹A中的所有文件名（去除扩展名）
    files_a = {os.path.splitext(f)[0] for f in os.listdir(folder_a)}
    # 获取文件夹B中的所有文件名
    files_b = {os.path.splitext(f)[0]: f for f in os.listdir(folder_b)}

    # 创建目标文件夹如果它不存在
    if not os.path.exists(folder_c):
        os.makedirs(folder_c)

    # 遍历文件夹B中的文件
    for base_name, full_name in files_b.items():
        if base_name in files_a:
            src_path = os.path.join(folder_b, full_name)
            dest_path = os.path.join(folder_c, full_name)
            shutil.copy2(src_path, dest_path)  # 使用copy2以保留元数据
            print(f'Copied {src_path} to {dest_path}')

# 调用函数
folder_a = 'd:/noknow_yw_totals'
folder_b = 'd:/111111'
folder_c = 'd:/333333' #111111中的需剔除文件
copy_matching_files(folder_a, folder_b, folder_c)